package com.cn.wanxi.service.impl;

import com.cn.wanxi.dao.NewsDao;
import com.cn.wanxi.model.NewsModel;
import com.cn.wanxi.service.NewsService;
import com.cn.wanxi.util.IOTool;
import com.cn.wanxi.util.PathTool;
import com.cn.wanxi.util.Tool;

import java.io.File;

/**
 * 创建文件和其他服务逻辑层的创建文件一模一样，
 * 而且创建文件和逻辑层没有任何关系
 * 所以，需要将所有不和当前类相关的代码提取出去
 */
public class NewsServiceImpl implements NewsService {
    @Override
    public NewsModel[] getNewsModelsForNewsPage() {
//        1.创建文件
        File file = IOTool.createFile(PathTool.PATH, PathTool.FOLDER, PathTool.FILE_NAME_NEWS_FOR_NEWS_PAGE);
//        2.封装dao层数据
        String[] data = getData();
//        3.写入数据
        IOTool.saveFile(file, data);
//        4.读取数据
        String s = IOTool.readFile(file);
//        5.封装数据到前端
        return setData(s);
    }


    private NewsModel[] setData(String s) {
        System.out.println(s);
        String [] results=s.split(PathTool.ENTER);
        //定义数组的长度，长度应该根据dao层数据进行得到

//        对newsModels进行赋值
//        循环 中间的i<length可以理解成需要循环多少次
        String title=results[0];
        String publishTime=results[1];
        String[] titles = title.split(",");
        String[] publishTimes = publishTime.split(",");
        int length = titles.length;
        NewsModel[] newsModels = new NewsModel[length];
        for (int i = 0; i < length; i++) {
            NewsModel model = new NewsModel();
            model.setTitle(titles[i]);
            model.setPublishTime(publishTimes[i]);
            newsModels[i] = model;
        }
        return newsModels;
    }

    private String[] getData() {
        NewsDao newsDao = new NewsDao();
        String[] data = {Tool.arrayToString(newsDao.titles), Tool.arrayToString(newsDao.publishTimes)};
        return data;
    }
}
